class Solution {
public:
    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
        if (n == 0) 
        {
        }
        else if (m == 0) 
        {
            nums1 = nums2;
        }
        else 
        {
            int max_nums1 = nums1[m - 1];

            for (int i = 0; i < n; i++) {
                for (int j = i; j < m ; j++) {
                    if (nums2[i] < nums1[j]) 
                    {
                        nums1.emplace(nums1.begin() + j, nums2[i]);
                        m++;    
                        nums1.pop_back();
                        break;
                    }
                    else if (nums2[i] == nums1[j])
                    {
                        nums1.emplace(nums1.begin() + j + 1, nums2[i]);
                        m++;
                        nums1.pop_back();
                        break;
                    }
                    else if (nums2[i] > max_nums1)
                    {
                        nums1.emplace(nums1.begin() + m, nums2[i]);
                        m++;
                        nums1.pop_back();
                        break;
                    }
                }
            }
        }

    }

    vector<int> nums1;
    int m;
    vector<int> nums2;
    int n;
};